// 获取用户信息 如果用户授权 返回授权对象 否则返回false
export const getuserInfos = () => {
    return new Promise((resolve, reject) => {
        wx.getSetting({
            success(res) {
                if (res.authSetting['scope.userInfo']) {
                    // 已经授权，可以直接调用 getUserInfo 获取头像昵称
                    wx.getUserInfo({
                        success: function (res) {
                            resolve(res.userInfo)
                        }
                    })
                } else {
                    reject()
                }
            }
        })
    })
}
//检测当前用户的session_key是否过期
export const checkSession = () => {
    return new Promise((resolve, reject) => {
        wx.checkSession({ //检测当前用户的session_key是否过期
            success: function () { //session_key 未过期，并且在本生命周期一直有效
                resolve()
            },
            fail: function () { //session_key 已经失效，需要重新执行登录流程
                reject()
            }
        })
    })
}

export const checkAndAuthorize = (scope) => {
    return new Promise((resolve, reject) => {
        wx.getSetting({
            success(res) {
                if (!res.authSetting[scope]) {
                    wx.authorize({
                        scope: scope,
                        success(res) {
                            resolve(true) // 无返回参数
                        },
                        fail(e) {
                            wx.showModal({
                                title: '我们需要你的授权',
                                content: '需要获得您的授权',
                                showCancel: true,
                                confirmText: '立即授权',
                                confirmColor: '#e64340',
                                cancelText: "取消",
                                success(res) {
                                    if (res.confirm) {
                                        wx.openSetting({
                                            success(res) {
                                                resolve(res)
                                            }
                                        })
                                    } else if (res.cancel) {
                                        reject()
                                    }   
                                },
                                fail(e) {
                                    reject(e)
                                },
                            })
                        }
                    })
                } else {
                    resolve(true) // 无返回参数
                }
            },
            fail(e) {
                console.error(e)
                reject(e)
            }
        })
    })
}
// 获取登录的code
export const wxlogins = () => {
    return new Promise((resolve, reject) => {
        wx.login({
            success(res) {
                return resolve(res)
            },
            fail() {
                wx.showToast({
                    title: '获取code失败',
                    icon: 'none'
                })
                return reject('获取code失败')
            }
        })
    })
}